#1.ANOVA检验求p值
setwd("C:/Users/86183/Desktop/data for class3") #设置新路径
ADdata=read.csv("myresult.csv")#读取文件
rownames(ADdata)<-ADdata[,2]#蛋白质名设置为行名
ADdata=t(ADdata[,-(1:2)])#删除前两列非数据列
ADdata[ADdata==0]=NA  #去0,将0转换成NA
ADdata=log2(ADdata)   #取对数
type=gsub("[0-9]","",rownames(ADdata))#将行名中的数字用空取代，分3组
table(type)#显示各组的个数
p=rownames(ADdata)#先定义p,用来存结果
for (i in (1:100))#在100个基因中循环
{
pro=ADdata[,i]#依次取一列
posctl=type=='ctl'
ctl=pro[posctl]
ctlsum=sum(!is.na(ctl))#计算该列的ctl类总数
posasym=type=='asym'
asym=pro[posasym]
asymsum=sum(!is.na(asym))#计算该列的asym类总数
posad=type=='ad'
ad=pro[posad]
adsum=sum(!is.na(ad))#计算该列的sd类总数
if(ctlsum>3 & asymsum>3 & adsum>3)
{result=oneway.test(pro~type)#ANOVA检验
p[i]=result$p.value}
else p[i]=NA#将结果存入p
}
p

#2.GO富集分析
if(!require("BiocManager",quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("clusterProfiler")#安装clusterProfiler包
BiocManager::install("scatterpie")#安装scatterpie包
BiocManager::install("org.Hs.eg.db")#安装org.Hs.eg.db包
library(clusterProfiler)#调用clusterProfiler包
library(org.Hs.eg.db)#调用clusterProfiler包
library(ggplot2)#调用clusterProfiler包
load("C:/Users/86183/Desktop/data for class3/class5_volcano.RData")#加载数据
n= prostat$P<0.05#数据预处理，筛选p值小于0.05的蛋白
pro_data = prostat[n,]
allID = pro_data$ID[!is.na(pro_data$ID)]
#基因背景默认全基因
enall1.1= enrichGO(allID,OrgDb = "org.Hs.eg.db",keyType = "SYMBOL",#对生物过程（BP）进行功能富集分析
                 ont = "BP", pAdjustMethod = "BH",pvalueCutoff=0.05)
enall1.2= enrichGO(allID,OrgDb = "org.Hs.eg.db",keyType = "SYMBOL",#对细胞组分（CC）进行功能富集分析
                 ont = "CC", pAdjustMethod = "BH",pvalueCutoff=0.05)
enall1.3= enrichGO(allID,OrgDb = "org.Hs.eg.db",keyType = "SYMBOL",#对分子功能（MF）进行功能富集分析
                 ont = "MF", pAdjustMethod = "BH",pvalueCutoff=0.05)
#基因背景为列表中的基因
enall2.1= enrichGO(allID,OrgDb = "org.Hs.eg.db",keyType = "SYMBOL",#对生物过程（BP）进行功能富集分析
                 ont = "BP",pAdjustMethod = "BH",pvalueCutoff=1,qvalueCutoff=1,universe=allID)
enall2.2= enrichGO(allID,OrgDb = "org.Hs.eg.db",keyType = "SYMBOL",#对细胞组分（CC）进行功能富集分析
                 ont = "CC",pAdjustMethod = "BH",pvalueCutoff=1,qvalueCutoff=1,universe=allID)
enall2.3= enrichGO(allID,OrgDb = "org.Hs.eg.db",keyType = "SYMBOL",#对分子功能（MF）进行功能富集分析
                 ont = "MF",pAdjustMethod = "BH",pvalueCutoff=1,qvalueCutoff=1,universe=allID)
#结果显示
png("zh-气泡图1.1.png")#创建png文件
dotplot(enall1.1,showCategory = 20)#绘制气泡图展示GO富集分析结果
dev.off()
png("zh-气泡图1.2.png")#创建png文件
dotplot(enall1.2,showCategory = 20)#绘制气泡图展示GO富集分析结果
dev.off()
png("zh-气泡图1.3.png")#创建png文件
dotplot(enall1.3,showCategory = 20)#绘制气泡图展示GO富集分析结果
dev.off()

png("zh-气泡图2.1.png")#创建png文件
dotplot(enall2.1,showCategory = 20)#绘制气泡图展示GO富集分析结果
dev.off()
png("zh-气泡图2.2.png")#创建png文件
dotplot(enall2.2,showCategory = 20)#绘制气泡图展示GO富集分析结果
dev.off()
png("zh-气泡图2.3.png")#创建png文件
dotplot(enall2.3,showCategory = 20)#绘制气泡图展示GO富集分析结果
dev.off()
